# 演示多行编辑:同时修改多个变量名
name1_test = "张三"
name2_test = "李四"
name3_test = "王五"

print(name1_test, name2_test, name3_test)


a = 10
b = 2
c = 3

if a > b:
    print("a大于b")
else:
    print("a小于b")

def calculate_sum(n):
    """
    计算从1加到n的和
    参数:
        n: 目标数字
    返回:
        sum: 计算结果
    """
    sum = 0
    for i in range(1, n + 1):
        sum += i
    return sum

# 测试函数
target = 500
result = calculate_sum(target)
print(f"从1加到{target}的结果是: {result}")

def test_calculate_sum():
    """
    测试calculate_sum函数的正确性
    """
    # 测试用例1：测试n=0的情况
    assert calculate_sum(0) == 0, "测试失败：n=0时应该返回0"
    
    # 测试用例2：测试n=1的情况
    assert calculate_sum(1) == 1, "测试失败：n=1时应该返回1"
    
    # 测试用例3：测试n=5的情况
    assert calculate_sum(5) == 15, "测试失败：n=5时应该返回15"
    
    # 测试用例4：测试n=10的情况
    assert calculate_sum(10) == 55, "测试失败：n=10时应该返回55"
    
    print("所有测试用例通过！")

# 运行测试
if __name__ == "__main__":
    test_calculate_sum()

def bubble_sort(arr):
    """
    冒泡排序算法
    参数:
        arr: 需要排序的列表
    返回:
        arr: 排序后的列表
    """
    # 获取数组长度，用于确定冒泡排序的迭代次数
    n = len(arr)
    # 如果数组为空,直接返回
    if n == 0:
        return arr
    # 外层循环控制排序轮数
    for i in range(n):
        # 设置标志位，如果一轮比较中没有交换，说明已经有序
        is_sorted = True
        # 内层循环进行相邻元素比较和交换
        for j in range(0, n - i - 1):
            # 如果前面的元素大于后面的元素，则交换
            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]
                is_sorted = False
        # 如果一轮比较中没有发生交换，则提前退出
        if is_sorted:
            break
    return arr

# 测试冒泡排序
def test_bubble_sort():
    """
    测试冒泡排序函数的正确性
    """
    # 测试用例1：普通数组
    test_arr1 = [64, 34, 25, 12, 22, 11, 90]
    assert bubble_sort(test_arr1) == [11, 12, 22, 25, 34, 64, 90], "测试失败：普通数组排序错误"
    
    # 测试用例2：已排序数组
    test_arr2 = [1, 2, 3, 4, 5]
    assert bubble_sort(test_arr2) == [1, 2, 3, 4, 5], "测试失败：已排序数组测试错误"
    
    # 测试用例3：逆序数组
    test_arr3 = [5, 4, 3, 2, 1]
    assert bubble_sort(test_arr3) == [1, 2, 3, 4, 5], "测试失败：逆序数组测试错误"
    
    # 测试用例4：包含重复元素的数组
    test_arr4 = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
    assert bubble_sort(test_arr4) == [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9], "测试失败：重复元素数组测试错误"
    
    # 测试用例5：空数组
    test_arr5 = []
    assert bubble_sort(test_arr5) == [], "测试失败：空数组测试错误"
    
    print("所有冒泡排序测试用例通过！")

# 示例使用
if __name__ == "__main__":
    # 运行测试
    test_bubble_sort()
    
    # 实际使用示例
    numbers = [64, 34, 25, 12, 22, 11, 90]
    print(f"原始数组: {numbers}")
    sorted_numbers = bubble_sort(numbers)
    print(f"排序后数组: {sorted_numbers}")
    if a == b:
        print("a等于b")
    else:
        print("a不等于b")



